UNIT HyperXCmd;

{	HyperXCmd.p  Definition file for HyperCard XCMDs and XFCNs in Pascal.
	By Dan Winkler.  DO NOT call the author!  Contact Apple Developer 
	Support on AppleLink "MacDTS" or on MCI "MacTech".

	ŠApple Computer, Inc. 1987
	All Rights Reserved.
}

INTERFACE

CONST
  
  { result codes }
  xresSucc 	= 0;
  xresFail 	= 1;
  xresNotImp 	= 2;
  
  { request codes }
  xreqSendCardMessage	= 1;
  xreqEvalExpr		= 2;
  xreqStringLength	= 3;
  xreqStringMatch	= 4;
  xreqSendHCMessage     = 5;
  xreqZeroBytes         = 6;
  xreqPasToZero		= 7;
  xreqZeroToPas		= 8;
  xreqStrToLong		= 9;
  xreqStrToNum		= 10;
  xreqStrToBool		= 11;
  xreqStrToExt		= 12;
  xreqLongToStr		= 13;
  xreqNumToStr		= 14;
  xreqNumToHex		= 15;
  xreqBoolToStr		= 16;
  xreqExtToStr		= 17;
  xreqGetGlobal		= 18;
  xreqSetGlobal		= 19;
  xreqGetFieldByName	= 20;
  xreqGetFieldByNum	= 21;
  xreqGetFieldByID	= 22;
  xreqSetFieldByName	= 23;
  xreqSetFieldByNum	= 24;
  xreqSetFieldByID	= 25;
  xreqStringEqual       = 26;
  xreqReturnToPas       = 27;
  xreqScanToReturn      = 28;
  xreqScanToZero        = 39;	{ was suppose to be 29.  Oops! }

TYPE

  XCmdPtr = ^XCmdBlock;
  XCmdBlock =
    RECORD
      paramCount:  INTEGER;     
      params:      ARRAY[1..16] OF Handle;
      returnValue: Handle;      
      passFlag:    BOOLEAN; 
      
      entryPoint:  ProcPtr;    { to call back to HyperCard }
      request:     INTEGER;  
      result:      INTEGER;  
      inArgs:      ARRAY[1..8] OF LongInt;
      outArgs:     ARRAY[1..4] OF LongInt;
    END;
    
END;